// Programa.: IDCPRA01
// BIBLIOTECA.: SISP
// Sistema: Sistema de Informacoes de Seguranca Publica - SISP
// Analista.: Solon
// Programador: Bruno Data: 28/11/97
// Objetivo.: Listagem de Nomes de Maes Invalidos

package br.com.vti.sisp_sicrim.antigo.controller.programa;

import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.interceptor.download.InputStreamDownload;
import br.com.vti.sisp_sicrim.antigo.controller.relatorios.Idcpra01Report;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Relatorio;
import br.com.vti.sisp_sicrim.antigo.model.DidCadastro;
import br.com.vti.sisp_sicrim.antigo.util.ExceptionProgram;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe : Idcpra01 Objetivo.: Listagem de Nomes de Maes Invalidos *
 * 
 * @author Incode - Data: mai/2014
 * 
 */

@Resource
@Path("/antigo/idcpra01")
public class Idcpra01 {

	Result result;
	Sessao sessao;
	Boolean primeiraVez = false;
	// public Idcpra01(Result result, Sessao
	// sessao) {
	Relatorio relatorio;
	Idcpra01 idcpra01Anterior;
	private String faseproc = "0";

	private Relatorio preMapas() {
		primeiraVez = true;
		relatorio = new Relatorio(primeiraVez, sessao);
		relatorio.setNavegar("../idcpra01/executar");
		relatorio.setTitulo("RELATORIO:Listagem de Nomes de Maes Invalidos");
		result.include("relatorio", relatorio);
		sessao.setAtributo("IDCPRA01", this);
		relatorio.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
		faseproc = "0";
		return relatorio;
	}

	public Idcpra01(Result result, Sessao sessao) {
		this.result = result;
		this.sessao = sessao;
	}

	@Post
	public InputStreamDownload executar(Relatorio relatorio) {
		try {

			return main(relatorio);
		} catch (Exception e) {
			throw new ExceptionProgram(e, sessao, this.getClass().getSimpleName());
		}
	}

	private InputStreamDownload main(Relatorio prelatorio) throws Exception {
		if (prelatorio == null) {

			preMapas();

			return null;
		} else {
			restaurarEstados(prelatorio);
		}

		if (faseproc == null) {

			preMapas();

			return null;
		}
		// Views utilizadas
		DidCadastro vwDidcad = new DidCadastro();
		// Telas/relatorios utilizados
		Idcpra01Report report;
		// Includes utilizados
		// Areas globais / session
		// Funcoes/subrotinas
		// FuncoesGerais funcoes = new FuncoesGerais();
		int jI;
		int jCont = 0;
		String jFlag;
		String jNommae;
		// //DEFINE PRINTER(EMF = 1)
		// RELATORIO 1 PS=60 LS=132 SG=ON
		report = new Idcpra01Report();
		report.setPageSize(60);
		report.setLineSize(132);
		// RELATORIO

		while (vwDidcad.leitura()) {
			// READADA

			report.setWdata(UtilBean.inverteData(vwDidcad.getDataNasc()));
			report.setDinideComuen(vwDidcad.getCodigoMunicipio());
			report.setDinideRegger(vwDidcad.getNumeroRg());
			jNommae = vwDidcad.getNomeMae();
			jFlag = "F";
			for (jI = 0; jI < 60; jI++) {
				if (UtilBean.validarMascara(UtilBean.subStr(jNommae, jI, 1), "A") && !UtilBean.subStr(jNommae, jI, 1).trim().equals("")) {
					jFlag = "T";
				}

			}
			if (jNommae.equals("************")) {
				jFlag = "F";
			}

			if (jNommae.trim().equals("")) {
				jFlag = "T";
			}

			if (jFlag.equals("T")) {
				jCont++;
				report.setJcont(jCont);
				report.setJmaetrunc(vwDidcad.getNomeMae());
				report.setJidetrunc(vwDidcad.getNomeIdent());
				report.gravaRelatorio(2);

				// RELATORIO
			} else

			// 80T DINIDE-DATNAS(EM=99/99/9999)
			// TESTA NOME DO INDIVIDUO

			{
				jNommae = vwDidcad.getNomeIdent();
				jFlag = "F";
				for (jI = 0; jI < 60; jI++) {
					if (UtilBean.validarMascara(UtilBean.subStr(jNommae, jI, 1), "A") && !UtilBean.subStr(jNommae, jI, 1).trim().equals("")) {
						jFlag = "T";
					}

				}
				if (jNommae.equals("************")) {
					jFlag = "F";
				}

				if (jNommae.trim().equals("")) {
					jFlag = "T";
				}

				if (jFlag.equals("T")) {
					jCont++;
					report.setJcont(jCont);
					report.setJmaetrunc(vwDidcad.getNomeMae());
					report.setJidetrunc(vwDidcad.getNomeIdent());
					report.gravaRelatorio(3);

					// RELATORIO
				}

			}

		}
		vwDidcad.fecha();

		// 80T DINIDE-DATNAS(EM=99/99/9999)
		report.gravaRelatorio(4);

		return report.imprimir();
	}

	private void restaurarEstados(Relatorio prelatorio) {
		this.idcpra01Anterior = (Idcpra01) sessao.getAtributo("IDCPRA01");
		if (prelatorio != null) {
			relatorio = prelatorio;
		} else {
			relatorio = this.idcpra01Anterior.relatorio;
		}

		faseproc = idcpra01Anterior.faseproc;

	}
}
